﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace imaginecup.information
{

    public enum EMessageResult { MR_FALSE, MR_TRUE, MR_IGNORED, MR_ERROR }
    public struct SComponentTypeID
    {
        private static int GeneratorIDCount;

        public static void InitGenerator()
        {
            GeneratorIDCount = 0;
        }

        private SComponentTypeID(int num)
        {
            ComponentTypeID = num;
        }

        public int ComponentTypeID;
        public static SComponentTypeID Generator()
        {
            SComponentTypeID componentType = new SComponentTypeID(GeneratorIDCount);
            GeneratorIDCount++;
            return componentType;

        }
    }

    public struct SInterfaceID
    {
        private static int GeneratorIDCount = 2;


        public static SInterfaceID IID_ENTITY = new SInterfaceID(0);
        public static SInterfaceID IID_RENDER = new SInterfaceID(1);

        public static void InitGenerator()
        {
            GeneratorIDCount = 2;
        }

        private SInterfaceID(int num)
        {
            InterfaceID = num;
        }

        public int InterfaceID;
        public static SInterfaceID Generator()
        {
            SInterfaceID componentType = new SInterfaceID(GeneratorIDCount);
            GeneratorIDCount++;
            return componentType;

        }
    }

    public struct SMessageType
    {
        private static int GeneratorIDCount = 0;


        public static void InitGenerator()
        {
            GeneratorIDCount = 0;
        }

        private SMessageType(int num)
        {
            MessageTypeID = num;
        }
        public int MessageTypeID;

        public static SMessageType Generator()
        {
            SMessageType componentType = new SMessageType(GeneratorIDCount);
            GeneratorIDCount++;
            return componentType;

        }
    }


}